<?php
/**
 * Created by IntelliJ IDEA.
 * User: Fernando
 * Date: 22/10/2014
 * Time: 07:30
 */

namespace Fiestissima\CRM\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="orden_compra")
 */
class OrdenCompra
{

    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     */
    protected $orden_compra_id;

    /**
     * @ORM\Column(type="string")
     */
    protected $orden_compra_fecha;

    /**
     * @ORM\Column(type="decimal", precision=8, scale=2)
     */
    protected $orden_compra_contado;

    /**
     * @ORM\Column(type="decimal", precision=8, scale=2)
     */
    protected $orden_compra_tarjeta;

    /**
     * @ORM\Column(type="decimal", precision=8, scale=2)
     */
    protected $orden_compra_total;

    /**
     * @ORM\Column(type="integer")
     */
    protected $orden_compra_descuento;

    /**
     * @ORM\OneToMany(targetEntity="OrdenCompraProducto", mappedBy="orden_compra", cascade={"persist"})
     */
    protected $ordenCompraProducto;

    /**
     * @ORM\OneToMany(targetEntity="OrdenCompraPago", mappedBy="ordenCompra", cascade={"persist"})
     */
    protected $ordenCompraPago;

    /**
     * @ORM\ManyToOne(targetEntity="Cliente", inversedBy="ordenCompraCliente")
     * @ORM\JoinColumn(name="c_id", referencedColumnName="c_id", nullable=true)
     */
    protected $cliente;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->ordenCompraProducto = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Set orden_compra_id
     *
     * @param integer $ordenCompraId
     * @return OrdenCompra
     */
    public function setOrdenCompraId($ordenCompraId)
    {
        $this->orden_compra_id = $ordenCompraId;

        return $this;
    }

    /**
     * Get orden_compra_id
     *
     * @return integer 
     */
    public function getOrdenCompraId()
    {
        return $this->orden_compra_id;
    }

    /**
     * Set orden_compra_fecha
     *
     * @param string $ordenCompraFecha
     * @return OrdenCompra
     */
    public function setOrdenCompraFecha($ordenCompraFecha)
    {
        $this->orden_compra_fecha = $ordenCompraFecha;

        return $this;
    }

    /**
     * Get orden_compra_fecha
     *
     * @return string 
     */
    public function getOrdenCompraFecha()
    {
        return $this->orden_compra_fecha;
    }

    /**
     * Set orden_compra_contado
     *
     * @param string $ordenCompraContado
     * @return OrdenCompra
     */
    public function setOrdenCompraContado($ordenCompraContado)
    {
        $this->orden_compra_contado = $ordenCompraContado;

        return $this;
    }

    /**
     * Get orden_compra_contado
     *
     * @return string 
     */
    public function getOrdenCompraContado()
    {
        return $this->orden_compra_contado;
    }

    /**
     * Set orden_compra_tarjeta
     *
     * @param string $ordenCompraTarjeta
     * @return OrdenCompra
     */
    public function setOrdenCompraTarjeta($ordenCompraTarjeta)
    {
        $this->orden_compra_tarjeta = $ordenCompraTarjeta;

        return $this;
    }

    /**
     * Get orden_compra_tarjeta
     *
     * @return string 
     */
    public function getOrdenCompraTarjeta()
    {
        return $this->orden_compra_tarjeta;
    }

    /**
     * Set orden_compra_total
     *
     * @param string $ordenCompraTotal
     * @return OrdenCompra
     */
    public function setOrdenCompraTotal($ordenCompraTotal)
    {
        $this->orden_compra_total = $ordenCompraTotal;

        return $this;
    }

    /**
     * Get orden_compra_total
     *
     * @return string 
     */
    public function getOrdenCompraTotal()
    {
        return $this->orden_compra_total;
    }

    /**
     * Add ordenCompraProducto
     *
     * @param \Fiestissima\CRM\Entity\OrdenCompraProducto $ordenCompraProducto
     * @return OrdenCompra
     */
    public function addOrdenCompraProducto(\Fiestissima\CRM\Entity\OrdenCompraProducto $ordenCompraProducto)
    {
        $this->ordenCompraProducto[] = $ordenCompraProducto;

        return $this;
    }

    /**
     * Remove ordenCompraProducto
     *
     * @param \Fiestissima\CRM\Entity\OrdenCompraProducto $ordenCompraProducto
     */
    public function removeOrdenCompraProducto(\Fiestissima\CRM\Entity\OrdenCompraProducto $ordenCompraProducto)
    {
        $this->ordenCompraProducto->removeElement($ordenCompraProducto);
    }

    /**
     * Get ordenCompraProducto
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getOrdenCompraProducto()
    {
        return $this->ordenCompraProducto;
    }

    /**
     * Set orden_compra_descuento
     *
     * @param integer $ordenCompraDescuento
     * @return OrdenCompra
     */
    public function setOrdenCompraDescuento($ordenCompraDescuento)
    {
        $this->orden_compra_descuento = $ordenCompraDescuento;

        return $this;
    }

    /**
     * Get orden_compra_descuento
     *
     * @return integer 
     */
    public function getOrdenCompraDescuento()
    {
        return $this->orden_compra_descuento;
    }

    /**
     * Add ordenCompraPago
     *
     * @param \Fiestissima\CRM\Entity\OrdenCompraPago $ordenCompraPago
     * @return OrdenCompra
     */
    public function addOrdenCompraPago(\Fiestissima\CRM\Entity\OrdenCompraPago $ordenCompraPago)
    {
        $this->ordenCompraPago[] = $ordenCompraPago;

        return $this;
    }

    /**
     * Remove ordenCompraPago
     *
     * @param \Fiestissima\CRM\Entity\OrdenCompraPago $ordenCompraPago
     */
    public function removeOrdenCompraPago(\Fiestissima\CRM\Entity\OrdenCompraPago $ordenCompraPago)
    {
        $this->ordenCompraPago->removeElement($ordenCompraPago);
    }

    /**
     * Get ordenCompraPago
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getOrdenCompraPago()
    {
        return $this->ordenCompraPago;
    }

    public function __toString()
    {
        return $this->orden_compra_fecha;
    }

    /**
     * Set cliente
     *
     * @param \Fiestissima\CRM\Entity\Cliente $cliente
     * @return OrdenCompra
     */
    public function setCliente(\Fiestissima\CRM\Entity\Cliente $cliente = null)
    {
        $this->cliente = $cliente;

        return $this;
    }

    /**
     * Get cliente
     *
     * @return \Fiestissima\CRM\Entity\Cliente 
     */
    public function getCliente()
    {
        return $this->cliente;
    }
}
